ClientScene
描述
包含静态客户端信息和功能的客户端管理器。
该管理器包含对跟踪的静态本地对象(如spawner
注册)的引用。当它们自己没有注册时,它也具有客户端使用的默认消息处理程序。客户端连接设置为就绪后,管理器处理添加/删除玩家对象到游戏。
ClientScene
是一个单例,它有静态的便利方法,例如ClientScene.Ready()
。
ClientScene
由NetworkManager
使用,但它本身可以使用。
由于ClientScene
管理客户端上的玩家对象,因此客户端需要添加玩家。当设置了auto-add-players
时,NetworkManager
会自动通过ClientScene
执行此操作,但可以使用函数ClientScene.AddPlayer()
通过代码完成。这会向服务器发送一个AddPlayer
消息,并会为该客户端创建一个玩家对象。
和NetworkServer
一样,ClientScene
也理解本地客户端的概念。通过启动本地客户端(当服务器已经运行时),函数ClientScene.ConnectLocalServer()
用于成为主机。
静态属性
属性 | 说明 |
---|---|
localPlayers | 添加到游戏中的列表的所有玩家。 |
objects | 这是一个已经在客户端产生的网络对象的字典。 |
prefabs | 这是使用ClientScene.RegisterPrefab() 在客户端上注册的预制件的字典。 |
ready | 当客户端的连接已被设置为就绪时返回true 。 |
readyConnection | 当前“就绪”的NetworkConnection 对象。这是与生成对象的服务器的连接。 |
reconnectId | 在旧主机丢失后客户端重新连接到新游戏主机时使用的reconnectId 。 |
ReconnectIdHost | 旧主机重新连接到新主机时使用的常量ID。 |
ReconnectIdInvalid | 无效的重新连接ID。 |
spawnableObjects | 这是场景中被禁用的NetworkIdentity 对象的字典,可能来自服务器的消息。 |
静态方法
方法 | 说明 |
---|---|
AddPlayer | 这为该客户添加了一个玩家GameObject 。这会导致将 AddPlayer 消息发送到服务器,并调用NetworkManager.OnServerAddPlayer 。如果额外的消息被传递给了 AddPlayer ,那么OnServerAddPlayer 将被包含消息内容的NetworkReader 调用。 |
ClearSpawners | 这将清除该客户端的已注册spawn 预制和spawn 处理函数。 |
ConnectLocalServer | 创建本地客户端实例并将其连接到本地服务器。 这使客户端成为“主机” - 在同一个进程中的客户端和服务器。 |
DestroyAllClientObjects | 销毁客户端上的所有联网对象。 |
FindLocalObject | 这将找到具有指定网络ID的本地NetworkIdentity 对象。 |
Ready | 表示客户端连接已准备好进入游戏。 |
RegisterPrefab | 注册UNET生成系统的预制件。 |
RegisterSpawnHandler | 这是一种先进的生成功能,用UNET生成系统注册自定义assetId 。 |
RemovePlayer | 从游戏中移除指定的玩家ID。 |
SendReconnectMessage | 向主机迁移期间使用的新主机发送重新连接消息。 |
SetLocalObject | NetId 是分配给游戏中具有NetworkIdentity 组件的所有对象的唯一编号。 |
SetReconnectId | 设置主机迁移后重新连接到新主机时ClientScene 将使用的Id 。 |
UnregisterPrefab | 删除用ClientScene.RegisterPrefab 设置的注册spawn 预制。 |
UnregisterSpawnHandler | 删除已注册的ClientScene.RegisterHandler() 注册的spawn 处理函数。 |
🔚